package com.etc.Day9;

import javax.naming.event.ObjectChangeListener;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

/**
 * @Author kalista
 * @Description
 * @Date 2020/10/30  14:46
 **/
public class ArrayListTest {
    public static void main(String[] args) {

        // 有序还是无序
        List<String> strings = new ArrayList<>();
        //1. 添加
        strings.add("wangcc1");
        strings.add("wangcc2");
        strings.add("wangcc3");
        strings.add("wangcc4");
        strings.add(2,"kalista");


        List<String> list = new ArrayList<>();
        //1. 添加
        list.add("wenwen");
        list.add("wenwen");

        //按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾
        strings.addAll(list);
        strings.addAll(0,list);

        // 清除所有
//        strings.clear();

        // 如果此列表包含指定的元素，则返回 true 。
        System.out.println("是否包含了wenwenwenwen：" +  strings.contains("wenwenwen"));
        // get(int index)/返回此列表中指定位置的元素。
        System.out.println( "获取wenwen: " + strings.get(0));
        //indexOf(Object o) 返回此列表中指定元素的第一次出现的索引，如果此列表不包含元素，则返回-1。
        System.out.println("wenwen 在哪: "+strings.indexOf("wangcc1"));
        //isEmpty() 如果此列表不包含元素，则返回 true 。
        System.out.println("是否未空: " + strings.isEmpty());
        //remove(int index) 删除该列表中指定位置的元素。
        strings.remove(0);
        //从列表中删除指定元素的第一个出现（如果存在）。
        System.out.println( strings.remove("wenwen")? "删除成功":"删除失败");
        //从此列表中删除指定集合中包含的所有元素。
        strings.removeAll(list);
        //set(int index, E element)/用指定的元素替换此列表中指定位置的元素。
        strings.set(2,"王聪聪");
        // size() 返回此列表中的元素数。
        System.out.println("返回列表得个数:" + strings.size());

        strings.forEach( i -> {
            System.out.println(i);
        });

        System.out.println("===================");

        Dog dog1 = new Dog("tom1",45);
        Dog dog2 = new Dog("tom2",12);
        Dog dog3 = new Dog("tom3",17);
        Dog dog4 = new Dog("tom4",3);
        Dog dog5 = new Dog("tom5",78);

        List<Dog> dogs = new ArrayList<>();
        dogs.add(dog1);
        dogs.add(dog2);
        dogs.add(dog3);
        dogs.add(dog4);
        dogs.add(dog5);

        dogs.sort(new Comparator<Dog>() {
            @Override
            public int compare(Dog o1, Dog o2) {
                Integer i1 = o1.getAge();
                Integer i2 = o2.getAge();
                return i1.compareTo(i2);
            }
        });


        for (Dog dog : dogs) {

            System.out.println(dog);
        }


        // list 转  数组
        Dog[] objects = (Dog[]) dogs.toArray();
        // 数组转list
        List<Dog> dogs1 = Arrays.asList(objects);



    }
}
